<!-- This comment will put IE 6, 7 and 8 in quirks mode -->
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<title>shark::BinaryTree&lt; InputT &gt; Class Template Reference</title>
<script type="text/javaScript" src="search/search.js"></script>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
<script src="https://polyfill.io/v3/polyfill.min.js?features=es6"></script>
<script id="MathJax-script" async src="https://cdn.jsdelivr.net/npm/mathjax@3.0.1/es5/tex-mml-chtml.js"></script>
<script src="../../mlstyle.js"></script>
<link href="../css/besser.css" rel="stylesheet" type="text/css"/>
</head>
<!-- pretty cool: each body gets an id tag which is the basename of the web page  -->
<!--              and allows for page-specific CSS. this is client-side scripted, -->
<!--              so the id will not yet show up in the served source code -->
<script type="text/javascript">
    jQuery(document).ready(function () {
        var url = jQuery(location).attr('href');
        var pname = url.substr(url.lastIndexOf("/")+1, url.lastIndexOf(".")-url.lastIndexOf("/")-1);
        jQuery('#this_url').html('<strong>' + pname + '</strong>');
        jQuery('body').attr('id', pname);
    });
</script>
<body>
    <div id="shark_old">
        <div id="wrap">
            <div id="header">
                <div id="site-name"><a href="../../sphinx_pages/build/html/index.html">Shark machine learning library</a></div>
                <ul id="nav">
                    <li >
                        <a href="../../sphinx_pages/build/html/rest_sources/installation.html">Installation</a>
                    </li>
		    <li >
                        <a href="../../sphinx_pages/build/html/rest_sources/tutorials/tutorials.html">Tutorials</a>
                    </li>
		    <li >
                        <a href="../../sphinx_pages/build/html/rest_sources/benchmark.html">Benchmarks</a>
                    </li>
                    <li class="active">
                        <a href="classes.html">Documentation</a>
                        <ul>
                            <li class="first"></li>
                            <li><a href="../../sphinx_pages/build/html/rest_sources/quickref/quickref.html">Quick references</a></li>
                            <li><a href="classes.html">Class list</a></li>
                            <li class="last"><a href="group__shark__globals.html">Global functions</a></li>
                        </ul>
                    </li>
                </ul>
            </div>
        </div>
    </div>
<div id="doxywrapper">
<!--
    <div id="global_doxytitle">Doxygen<br>Documentation:</div>
-->
    <div id="navrow_wrapper">
<!-- Generated by Doxygen 1.9.8 -->
<div id="nav-path" class="navpath">
  <ul>
<li class="navelem"><a class="el" href="namespaceshark.html">shark</a></li><li class="navelem"><a class="el" href="classshark_1_1_binary_tree.html">BinaryTree</a></li>  </ul>
</div>
</div><!-- top -->
<div class="header">
  <div class="summary">
<a href="classshark_1_1_binary_tree-members.html">List of all members</a> &#124;
<a href="#pub-methods">Public Member Functions</a> &#124;
<a href="#pro-methods">Protected Member Functions</a> &#124;
<a href="#pro-attribs">Protected Attributes</a>  </div>
  <div class="headertitle"><div class="title">shark::BinaryTree&lt; InputT &gt; Class Template Reference<span class="mlabels"><span class="mlabel">abstract</span></span><div class="ingroups"><a class="el" href="group__models.html">Models</a> &raquo; <a class="el" href="group__space__trees.html">Space Partitioning Trees</a></div></div></div>
</div><!--header-->
<div class="contents">

<p>Super class of binary space-partitioning trees.  
 <a href="classshark_1_1_binary_tree.html#details">More...</a></p>

<p><code>#include &lt;<a class="el" href="_binary_tree_8h_source.html">shark/Models/Trees/BinaryTree.h</a>&gt;</code></p>
<div id="dynsection-0" onclick="return toggleVisibility(this)" class="dynheader closed" style="cursor:pointer;">
  <img id="dynsection-0-trigger" src="closed.png" alt="+"/> Inheritance diagram for shark::BinaryTree&lt; InputT &gt;:</div>
<div id="dynsection-0-summary" class="dynsummary" style="display:block;">
</div>
<div id="dynsection-0-content" class="dyncontent" style="display:none;">
<div class="center"><img src="classshark_1_1_binary_tree__inherit__graph.png" border="0" usemap="#ashark_1_1_binary_tree_3_01_input_t_01_4_inherit__map" alt="Inheritance graph"/></div>
<map name="ashark_1_1_binary_tree_3_01_input_t_01_4_inherit__map" id="ashark_1_1_binary_tree_3_01_input_t_01_4_inherit__map">
<area shape="rect" title="Super class of binary space&#45;partitioning trees." alt="" coords="123,5,255,46"/>
<area shape="rect" href="classshark_1_1_k_d_tree.html" title="KD&#45;tree, a binary space&#45;partitioning tree." alt="" coords="5,102,173,127"/>
<area shape="poly" title=" " alt="" coords="157,58,104,103,101,99,153,54"/>
<area shape="rect" href="classshark_1_1_l_c_tree.html" title="LC&#45;tree, a binary space&#45;partitioning tree." alt="" coords="197,94,384,135"/>
<area shape="poly" title=" " alt="" coords="225,54,269,92,266,96,222,58"/>
</map>
<center><span class="legend">[<a href="graph_legend.html">legend</a>]</span></center></div>
<table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a id="pub-methods" name="pub-methods"></a>
Public Member Functions</h2></td></tr>
<tr class="memitem:a50b781f4203ea4d3a9e1dc60a52bec4e" id="r_a50b781f4203ea4d3a9e1dc60a52bec4e"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classshark_1_1_binary_tree.html#a50b781f4203ea4d3a9e1dc60a52bec4e">BinaryTree</a> (std::size_t <a class="el" href="classshark_1_1_binary_tree.html#aa726e7311191b6617cf2079544e23662">size</a>)</td></tr>
<tr class="memdesc:a50b781f4203ea4d3a9e1dc60a52bec4e"><td class="mdescLeft">&#160;</td><td class="mdescRight">Root node constructor: build the tree from data.  <br /></td></tr>
<tr class="separator:a50b781f4203ea4d3a9e1dc60a52bec4e"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a9928e5dcb0026028ef3f4cbf56fe8721" id="r_a9928e5dcb0026028ef3f4cbf56fe8721"><td class="memItemLeft" align="right" valign="top">virtual&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classshark_1_1_binary_tree.html#a9928e5dcb0026028ef3f4cbf56fe8721">~BinaryTree</a> ()</td></tr>
<tr class="memdesc:a9928e5dcb0026028ef3f4cbf56fe8721"><td class="mdescLeft">&#160;</td><td class="mdescRight">Destroy the tree and its internal data structures.  <br /></td></tr>
<tr class="separator:a9928e5dcb0026028ef3f4cbf56fe8721"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a86cc7ef0387f9ae7cb4aff75cf4c6bee" id="r_a86cc7ef0387f9ae7cb4aff75cf4c6bee"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classshark_1_1_binary_tree.html">BinaryTree</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classshark_1_1_binary_tree.html#a86cc7ef0387f9ae7cb4aff75cf4c6bee">parent</a> ()</td></tr>
<tr class="memdesc:a86cc7ef0387f9ae7cb4aff75cf4c6bee"><td class="mdescLeft">&#160;</td><td class="mdescRight">parent node  <br /></td></tr>
<tr class="separator:a86cc7ef0387f9ae7cb4aff75cf4c6bee"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:acf31280508b15cf67be7b7b4d30e41f5" id="r_acf31280508b15cf67be7b7b4d30e41f5"><td class="memItemLeft" align="right" valign="top">const <a class="el" href="classshark_1_1_binary_tree.html">BinaryTree</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classshark_1_1_binary_tree.html#acf31280508b15cf67be7b7b4d30e41f5">parent</a> () const</td></tr>
<tr class="memdesc:acf31280508b15cf67be7b7b4d30e41f5"><td class="mdescLeft">&#160;</td><td class="mdescRight">parent node  <br /></td></tr>
<tr class="separator:acf31280508b15cf67be7b7b4d30e41f5"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a8d5379344624257a1c2950d4e64ab8c0" id="r_a8d5379344624257a1c2950d4e64ab8c0"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classshark_1_1_binary_tree.html#a8d5379344624257a1c2950d4e64ab8c0">hasChildren</a> () const</td></tr>
<tr class="separator:a8d5379344624257a1c2950d4e64ab8c0"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a1876569a27c34141bbc4e3fbfe2367ef" id="r_a1876569a27c34141bbc4e3fbfe2367ef"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classshark_1_1_binary_tree.html#a1876569a27c34141bbc4e3fbfe2367ef">isLeaf</a> () const</td></tr>
<tr class="separator:a1876569a27c34141bbc4e3fbfe2367ef"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ae20385cf5cf85d7168db9b3fcf411c47" id="r_ae20385cf5cf85d7168db9b3fcf411c47"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classshark_1_1_binary_tree.html">BinaryTree</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classshark_1_1_binary_tree.html#ae20385cf5cf85d7168db9b3fcf411c47">left</a> ()</td></tr>
<tr class="memdesc:ae20385cf5cf85d7168db9b3fcf411c47"><td class="mdescLeft">&#160;</td><td class="mdescRight">"left" sub-node of the binary tree  <br /></td></tr>
<tr class="separator:ae20385cf5cf85d7168db9b3fcf411c47"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a3b130767c5ff7c5233b0de89fb263221" id="r_a3b130767c5ff7c5233b0de89fb263221"><td class="memItemLeft" align="right" valign="top">const <a class="el" href="classshark_1_1_binary_tree.html">BinaryTree</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classshark_1_1_binary_tree.html#a3b130767c5ff7c5233b0de89fb263221">left</a> () const</td></tr>
<tr class="memdesc:a3b130767c5ff7c5233b0de89fb263221"><td class="mdescLeft">&#160;</td><td class="mdescRight">"left" sub-node of the binary tree  <br /></td></tr>
<tr class="separator:a3b130767c5ff7c5233b0de89fb263221"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ae5167564abb964d90da01897693a5768" id="r_ae5167564abb964d90da01897693a5768"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classshark_1_1_binary_tree.html">BinaryTree</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classshark_1_1_binary_tree.html#ae5167564abb964d90da01897693a5768">right</a> ()</td></tr>
<tr class="memdesc:ae5167564abb964d90da01897693a5768"><td class="mdescLeft">&#160;</td><td class="mdescRight">"right" sub-node of the binary tree  <br /></td></tr>
<tr class="separator:ae5167564abb964d90da01897693a5768"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a57a5c5fd47bda6d5fc35774abfb9731f" id="r_a57a5c5fd47bda6d5fc35774abfb9731f"><td class="memItemLeft" align="right" valign="top">const <a class="el" href="classshark_1_1_binary_tree.html">BinaryTree</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classshark_1_1_binary_tree.html#a57a5c5fd47bda6d5fc35774abfb9731f">right</a> () const</td></tr>
<tr class="memdesc:a57a5c5fd47bda6d5fc35774abfb9731f"><td class="mdescLeft">&#160;</td><td class="mdescRight">"right" sub-node of the binary tree  <br /></td></tr>
<tr class="separator:a57a5c5fd47bda6d5fc35774abfb9731f"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aa726e7311191b6617cf2079544e23662" id="r_aa726e7311191b6617cf2079544e23662"><td class="memItemLeft" align="right" valign="top">std::size_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classshark_1_1_binary_tree.html#aa726e7311191b6617cf2079544e23662">size</a> () const</td></tr>
<tr class="memdesc:aa726e7311191b6617cf2079544e23662"><td class="mdescLeft">&#160;</td><td class="mdescRight">number of points inside the space represented by this node  <br /></td></tr>
<tr class="separator:aa726e7311191b6617cf2079544e23662"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a53cb65296bf84a1fbe0715e2ba0878bb" id="r_a53cb65296bf84a1fbe0715e2ba0878bb"><td class="memItemLeft" align="right" valign="top">std::size_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classshark_1_1_binary_tree.html#a53cb65296bf84a1fbe0715e2ba0878bb">nodes</a> () const</td></tr>
<tr class="memdesc:a53cb65296bf84a1fbe0715e2ba0878bb"><td class="mdescLeft">&#160;</td><td class="mdescRight">number of sub-nodes in this tree (including the node itself)  <br /></td></tr>
<tr class="separator:a53cb65296bf84a1fbe0715e2ba0878bb"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ac499a09353aff38530837d22a16ad24a" id="r_ac499a09353aff38530837d22a16ad24a"><td class="memItemLeft" align="right" valign="top">std::size_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classshark_1_1_binary_tree.html#ac499a09353aff38530837d22a16ad24a">index</a> (std::size_t point) const</td></tr>
<tr class="separator:ac499a09353aff38530837d22a16ad24a"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aa0d859e272e40b522cb3eb328b0e1f41" id="r_aa0d859e272e40b522cb3eb328b0e1f41"><td class="memItemLeft" align="right" valign="top">double&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classshark_1_1_binary_tree.html#aa0d859e272e40b522cb3eb328b0e1f41">distanceFromPlane</a> (value_type const &amp;point) const</td></tr>
<tr class="memdesc:aa0d859e272e40b522cb3eb328b0e1f41"><td class="mdescLeft">&#160;</td><td class="mdescRight">Function describing the separation of space.  <br /></td></tr>
<tr class="separator:aa0d859e272e40b522cb3eb328b0e1f41"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ad7e43f9fa135d67d1817b2a7aa20b434" id="r_ad7e43f9fa135d67d1817b2a7aa20b434"><td class="memItemLeft" align="right" valign="top">double&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classshark_1_1_binary_tree.html#ad7e43f9fa135d67d1817b2a7aa20b434">threshold</a> () const</td></tr>
<tr class="memdesc:ad7e43f9fa135d67d1817b2a7aa20b434"><td class="mdescLeft">&#160;</td><td class="mdescRight">Separation threshold.  <br /></td></tr>
<tr class="separator:ad7e43f9fa135d67d1817b2a7aa20b434"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a456c9994792021b1bb2557cad4ab7a3e" id="r_a456c9994792021b1bb2557cad4ab7a3e"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classshark_1_1_binary_tree.html#a456c9994792021b1bb2557cad4ab7a3e">isLeft</a> (value_type const &amp;point) const</td></tr>
<tr class="separator:a456c9994792021b1bb2557cad4ab7a3e"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aaf824c0062811dfa4311a66292bb38be" id="r_aaf824c0062811dfa4311a66292bb38be"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classshark_1_1_binary_tree.html#aaf824c0062811dfa4311a66292bb38be">isRight</a> (value_type const &amp;point) const</td></tr>
<tr class="separator:aaf824c0062811dfa4311a66292bb38be"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a882ac1aea537378fead318573c9b301c" id="r_a882ac1aea537378fead318573c9b301c"><td class="memItemLeft" align="right" valign="top">virtual <a class="el" href="classshark_1_1_abstract_kernel_function.html">AbstractKernelFunction</a>&lt; value_type &gt; const *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classshark_1_1_binary_tree.html#a882ac1aea537378fead318573c9b301c">kernel</a> () const</td></tr>
<tr class="memdesc:a882ac1aea537378fead318573c9b301c"><td class="mdescLeft">&#160;</td><td class="mdescRight">If the tree uses a kernel metric, returns a pointer to the kernel object, else NULL.  <br /></td></tr>
<tr class="separator:a882ac1aea537378fead318573c9b301c"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aa78235225476effa7b22d285f3d9e197" id="r_aa78235225476effa7b22d285f3d9e197"><td class="memItemLeft" align="right" valign="top">virtual double&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classshark_1_1_binary_tree.html#aa78235225476effa7b22d285f3d9e197">squaredDistanceLowerBound</a> (value_type const &amp;point) const =0</td></tr>
<tr class="memdesc:aa78235225476effa7b22d285f3d9e197"><td class="mdescLeft">&#160;</td><td class="mdescRight">Compute lower bound on the squared distance to the space cell.  <br /></td></tr>
<tr class="separator:aa78235225476effa7b22d285f3d9e197"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a id="pro-methods" name="pro-methods"></a>
Protected Member Functions</h2></td></tr>
<tr class="memitem:ac92e6cbbc2318f60cf32112bf640138e" id="r_ac92e6cbbc2318f60cf32112bf640138e"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classshark_1_1_binary_tree.html#ac92e6cbbc2318f60cf32112bf640138e">BinaryTree</a> (<a class="el" href="classshark_1_1_binary_tree.html">BinaryTree</a> *<a class="el" href="classshark_1_1_binary_tree.html#a86cc7ef0387f9ae7cb4aff75cf4c6bee">parent</a>, std::size_t *list, std::size_t <a class="el" href="classshark_1_1_binary_tree.html#aa726e7311191b6617cf2079544e23662">size</a>)</td></tr>
<tr class="memdesc:ac92e6cbbc2318f60cf32112bf640138e"><td class="mdescLeft">&#160;</td><td class="mdescRight">Sub-node constructor.  <br /></td></tr>
<tr class="separator:ac92e6cbbc2318f60cf32112bf640138e"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ad3bf9775a2e3122973a1b4036e8854fd" id="r_ad3bf9775a2e3122973a1b4036e8854fd"><td class="memItemLeft" align="right" valign="top">virtual double&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classshark_1_1_binary_tree.html#ad3bf9775a2e3122973a1b4036e8854fd">funct</a> (value_type const &amp;point) const =0</td></tr>
<tr class="memdesc:ad3bf9775a2e3122973a1b4036e8854fd"><td class="mdescLeft">&#160;</td><td class="mdescRight">Function describing the separation of space.  <br /></td></tr>
<tr class="separator:ad3bf9775a2e3122973a1b4036e8854fd"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a153a6ecae3dd8bf1407209962febca55" id="r_a153a6ecae3dd8bf1407209962febca55"><td class="memTemplParams" colspan="2">template&lt;class Range1 , class Range2 &gt; </td></tr>
<tr class="memitem:a153a6ecae3dd8bf1407209962febca55"><td class="memTemplItemLeft" align="right" valign="top">Range2::iterator&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="classshark_1_1_binary_tree.html#a153a6ecae3dd8bf1407209962febca55">splitList</a> (Range1 &amp;values, Range2 &amp;points)</td></tr>
<tr class="memdesc:a153a6ecae3dd8bf1407209962febca55"><td class="mdescLeft">&#160;</td><td class="mdescRight">Split the data in the point list and calculate the treshold accordingly.  <br /></td></tr>
<tr class="separator:a153a6ecae3dd8bf1407209962febca55"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a id="pro-attribs" name="pro-attribs"></a>
Protected Attributes</h2></td></tr>
<tr class="memitem:a100ef54d8a4904afff8c188bf4e735f9" id="r_a100ef54d8a4904afff8c188bf4e735f9"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classshark_1_1_binary_tree.html">BinaryTree</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classshark_1_1_binary_tree.html#a100ef54d8a4904afff8c188bf4e735f9">mep_parent</a></td></tr>
<tr class="memdesc:a100ef54d8a4904afff8c188bf4e735f9"><td class="mdescLeft">&#160;</td><td class="mdescRight">parent node  <br /></td></tr>
<tr class="separator:a100ef54d8a4904afff8c188bf4e735f9"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a14c17e4fc65d1351cc23eceae05ce0d0" id="r_a14c17e4fc65d1351cc23eceae05ce0d0"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classshark_1_1_binary_tree.html">BinaryTree</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classshark_1_1_binary_tree.html#a14c17e4fc65d1351cc23eceae05ce0d0">mp_left</a></td></tr>
<tr class="memdesc:a14c17e4fc65d1351cc23eceae05ce0d0"><td class="mdescLeft">&#160;</td><td class="mdescRight">"left" child node  <br /></td></tr>
<tr class="separator:a14c17e4fc65d1351cc23eceae05ce0d0"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:acc95bb731d3bfac4a896820f8de04ad8" id="r_acc95bb731d3bfac4a896820f8de04ad8"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classshark_1_1_binary_tree.html">BinaryTree</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classshark_1_1_binary_tree.html#acc95bb731d3bfac4a896820f8de04ad8">mp_right</a></td></tr>
<tr class="memdesc:acc95bb731d3bfac4a896820f8de04ad8"><td class="mdescLeft">&#160;</td><td class="mdescRight">"right" child node  <br /></td></tr>
<tr class="separator:acc95bb731d3bfac4a896820f8de04ad8"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:afdce442d41868d9a84dcfc954c78ce93" id="r_afdce442d41868d9a84dcfc954c78ce93"><td class="memItemLeft" align="right" valign="top">std::size_t *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classshark_1_1_binary_tree.html#afdce442d41868d9a84dcfc954c78ce93">mp_indexList</a></td></tr>
<tr class="memdesc:afdce442d41868d9a84dcfc954c78ce93"><td class="mdescLeft">&#160;</td><td class="mdescRight">list of indices to points in the dataset  <br /></td></tr>
<tr class="separator:afdce442d41868d9a84dcfc954c78ce93"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a825e00e68228cb1654b5ac0a25f4972a" id="r_a825e00e68228cb1654b5ac0a25f4972a"><td class="memItemLeft" align="right" valign="top">std::size_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classshark_1_1_binary_tree.html#a825e00e68228cb1654b5ac0a25f4972a">m_size</a></td></tr>
<tr class="memdesc:a825e00e68228cb1654b5ac0a25f4972a"><td class="mdescLeft">&#160;</td><td class="mdescRight">number of points in this node  <br /></td></tr>
<tr class="separator:a825e00e68228cb1654b5ac0a25f4972a"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ad07d8f306001f8e1bc9a321a3d11444e" id="r_ad07d8f306001f8e1bc9a321a3d11444e"><td class="memItemLeft" align="right" valign="top">std::size_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classshark_1_1_binary_tree.html#ad07d8f306001f8e1bc9a321a3d11444e">m_nodes</a></td></tr>
<tr class="memdesc:ad07d8f306001f8e1bc9a321a3d11444e"><td class="mdescLeft">&#160;</td><td class="mdescRight">number of nodes in the sub-tree represented by this node  <br /></td></tr>
<tr class="separator:ad07d8f306001f8e1bc9a321a3d11444e"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a1d2b86563df35585acbbb0364d3a7450" id="r_a1d2b86563df35585acbbb0364d3a7450"><td class="memItemLeft" align="right" valign="top">double&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classshark_1_1_binary_tree.html#a1d2b86563df35585acbbb0364d3a7450">m_threshold</a></td></tr>
<tr class="memdesc:a1d2b86563df35585acbbb0364d3a7450"><td class="mdescLeft">&#160;</td><td class="mdescRight">threshold for the separating function  <br /></td></tr>
<tr class="separator:a1d2b86563df35585acbbb0364d3a7450"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table>
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
<div class="textblock"><div class="compoundTemplParams">template&lt;class InputT&gt;<br />
class shark::BinaryTree&lt; InputT &gt;</div><p>Super class of binary space-partitioning trees. </p>
<dl class="section user"><dt></dt><dd>This class represents a generic node in a binary space-partitioning tree. At each junction the space cell represented by the parent node is split into sub-cells by thresholding a real-valued function. Different sub-classes implement different such functions. The absolute value of the function minus the threshold m_threshold must represent the distance to the separating hyper-surface in the underlying metric. This allows for linear separation, but also for kernel-induced feature spaces and other embeddings. </dd></dl>

<p class="definition">Definition at line <a class="el" href="_binary_tree_8h_source.html#l00137">137</a> of file <a class="el" href="_binary_tree_8h_source.html">BinaryTree.h</a>.</p>
</div><h2 class="groupheader">Constructor &amp; Destructor Documentation</h2>
<a id="a50b781f4203ea4d3a9e1dc60a52bec4e" name="a50b781f4203ea4d3a9e1dc60a52bec4e"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a50b781f4203ea4d3a9e1dc60a52bec4e">&#9670;&#160;</a></span>BinaryTree() <span class="overload">[1/2]</span></h2>

<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;class InputT &gt; </div>
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="classshark_1_1_binary_tree.html">shark::BinaryTree</a>&lt; InputT &gt;::BinaryTree </td>
          <td>(</td>
          <td class="paramtype">std::size_t&#160;</td>
          <td class="paramname"><em>size</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Root node constructor: build the tree from data. </p>
<p>Please refer the specific sub-classes such as <a class="el" href="classshark_1_1_k_d_tree.html" title="KD-tree, a binary space-partitioning tree.">KDTree</a> for examples of how the binary tree is built. </p>

<p class="definition">Definition at line <a class="el" href="_binary_tree_8h_source.html#l00147">147</a> of file <a class="el" href="_binary_tree_8h_source.html">BinaryTree.h</a>.</p>

<p class="reference">References <a class="el" href="classshark_1_1_binary_tree.html#a825e00e68228cb1654b5ac0a25f4972a">shark::BinaryTree&lt; InputT &gt;::m_size</a>, <a class="el" href="classshark_1_1_binary_tree.html#afdce442d41868d9a84dcfc954c78ce93">shark::BinaryTree&lt; InputT &gt;::mp_indexList</a>, and <a class="el" href="_exception_8h.html#a73abb5049a0168d72a48e72dda41708b">SHARK_ASSERT</a>.</p>

</div>
</div>
<a id="a9928e5dcb0026028ef3f4cbf56fe8721" name="a9928e5dcb0026028ef3f4cbf56fe8721"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a9928e5dcb0026028ef3f4cbf56fe8721">&#9670;&#160;</a></span>~BinaryTree()</h2>

<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;class InputT &gt; </div>
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">virtual <a class="el" href="classshark_1_1_binary_tree.html">shark::BinaryTree</a>&lt; InputT &gt;::~<a class="el" href="classshark_1_1_binary_tree.html">BinaryTree</a> </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">virtual</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Destroy the tree and its internal data structures. </p>

<p class="definition">Definition at line <a class="el" href="_binary_tree_8h_source.html#l00164">164</a> of file <a class="el" href="_binary_tree_8h_source.html">BinaryTree.h</a>.</p>

<p class="reference">References <a class="el" href="classshark_1_1_binary_tree.html#a100ef54d8a4904afff8c188bf4e735f9">shark::BinaryTree&lt; InputT &gt;::mep_parent</a>, <a class="el" href="classshark_1_1_binary_tree.html#afdce442d41868d9a84dcfc954c78ce93">shark::BinaryTree&lt; InputT &gt;::mp_indexList</a>, <a class="el" href="classshark_1_1_binary_tree.html#a14c17e4fc65d1351cc23eceae05ce0d0">shark::BinaryTree&lt; InputT &gt;::mp_left</a>, and <a class="el" href="classshark_1_1_binary_tree.html#acc95bb731d3bfac4a896820f8de04ad8">shark::BinaryTree&lt; InputT &gt;::mp_right</a>.</p>

</div>
</div>
<a id="ac92e6cbbc2318f60cf32112bf640138e" name="ac92e6cbbc2318f60cf32112bf640138e"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ac92e6cbbc2318f60cf32112bf640138e">&#9670;&#160;</a></span>BinaryTree() <span class="overload">[2/2]</span></h2>

<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;class InputT &gt; </div>
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="classshark_1_1_binary_tree.html">shark::BinaryTree</a>&lt; InputT &gt;::BinaryTree </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="classshark_1_1_binary_tree.html">BinaryTree</a>&lt; InputT &gt; *&#160;</td>
          <td class="paramname"><em>parent</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">std::size_t *&#160;</td>
          <td class="paramname"><em>list</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">std::size_t&#160;</td>
          <td class="paramname"><em>size</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">protected</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Sub-node constructor. </p>
<dl class="section user"><dt></dt><dd>Initialize a sub-node </dd></dl>

<p class="definition">Definition at line <a class="el" href="_binary_tree_8h_source.html#l00275">275</a> of file <a class="el" href="_binary_tree_8h_source.html">BinaryTree.h</a>.</p>

</div>
</div>
<h2 class="groupheader">Member Function Documentation</h2>
<a id="aa0d859e272e40b522cb3eb328b0e1f41" name="aa0d859e272e40b522cb3eb328b0e1f41"></a>
<h2 class="memtitle"><span class="permalink"><a href="#aa0d859e272e40b522cb3eb328b0e1f41">&#9670;&#160;</a></span>distanceFromPlane()</h2>

<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;class InputT &gt; </div>
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">double <a class="el" href="classshark_1_1_binary_tree.html">shark::BinaryTree</a>&lt; InputT &gt;::distanceFromPlane </td>
          <td>(</td>
          <td class="paramtype">value_type const &amp;&#160;</td>
          <td class="paramname"><em>point</em></td><td>)</td>
          <td> const</td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Function describing the separation of space. </p>
<dl class="section user"><dt></dt><dd>This function is shifted by subtracting the threshold from the virtual function "funct" (which acts as a "decision" function to split space into sub-cells). The result of this function describes "signed" distance to the separation boundary, and the two cells are thresholded at zero. We obtain the two cells:<br  />
 left ("negative") cell: {x | distance(x) &lt; 0}<br  />
 right ("positive") cell {x | distance(x) &gt;= 0} </dd></dl>

<p class="definition">Definition at line <a class="el" href="_binary_tree_8h_source.html#l00233">233</a> of file <a class="el" href="_binary_tree_8h_source.html">BinaryTree.h</a>.</p>

<p class="reference">References <a class="el" href="classshark_1_1_binary_tree.html#ad3bf9775a2e3122973a1b4036e8854fd">shark::BinaryTree&lt; InputT &gt;::funct()</a>, and <a class="el" href="classshark_1_1_binary_tree.html#a1d2b86563df35585acbbb0364d3a7450">shark::BinaryTree&lt; InputT &gt;::m_threshold</a>.</p>

<p class="reference">Referenced by <a class="el" href="classshark_1_1_l_c_tree.html#ada804c1f1a75c767dc6c40960172254b">shark::LCTree&lt; VectorType, CuttingAccuracy &gt;::squaredDistanceLowerBound()</a>.</p>

</div>
</div>
<a id="ad3bf9775a2e3122973a1b4036e8854fd" name="ad3bf9775a2e3122973a1b4036e8854fd"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ad3bf9775a2e3122973a1b4036e8854fd">&#9670;&#160;</a></span>funct()</h2>

<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;class InputT &gt; </div>
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">virtual double <a class="el" href="classshark_1_1_binary_tree.html">shark::BinaryTree</a>&lt; InputT &gt;::funct </td>
          <td>(</td>
          <td class="paramtype">value_type const &amp;&#160;</td>
          <td class="paramname"><em>point</em></td><td>)</td>
          <td> const</td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">protected</span><span class="mlabel">pure virtual</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Function describing the separation of space. </p>
<dl class="section user"><dt></dt><dd>This is the primary interface for customizing sub-classes.</dd></dl>
<dl class="section user"><dt></dt><dd>This function splits the space represented by the node by thresholding at m_threshold. The "negative" cell, represented in the "left" sub-node, represents the space {x | funct(x) &lt; threshold}. The "positive" cell, represented by the "right" sub-node, represents {x | funct(x) &gt;= threshold}. The function needs to be normalized such that |f(x) - f(y)| is the distance between {z | f(z) = f(x)} and {z | f(z) = f(y)}, w.r.t. the distance function also used by the virtual function squaredDistanceLowerBound. The exact distance function does not matter as long as the same distance function is used in both cases. </dd></dl>

<p>Implemented in <a class="el" href="classshark_1_1_k_d_tree.html#a54181d202a7a437f2dc0d632b06fca60">shark::KDTree&lt; InputT &gt;</a>.</p>

<p class="reference">Referenced by <a class="el" href="classshark_1_1_binary_tree.html#aa0d859e272e40b522cb3eb328b0e1f41">shark::BinaryTree&lt; InputT &gt;::distanceFromPlane()</a>, <a class="el" href="classshark_1_1_binary_tree.html#a456c9994792021b1bb2557cad4ab7a3e">shark::BinaryTree&lt; InputT &gt;::isLeft()</a>, and <a class="el" href="classshark_1_1_binary_tree.html#aaf824c0062811dfa4311a66292bb38be">shark::BinaryTree&lt; InputT &gt;::isRight()</a>.</p>

</div>
</div>
<a id="a8d5379344624257a1c2950d4e64ab8c0" name="a8d5379344624257a1c2950d4e64ab8c0"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a8d5379344624257a1c2950d4e64ab8c0">&#9670;&#160;</a></span>hasChildren()</h2>

<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;class InputT &gt; </div>
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">bool <a class="el" href="classshark_1_1_binary_tree.html">shark::BinaryTree</a>&lt; InputT &gt;::hasChildren </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td> const</td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">
<p>Does this node have children? Opposite of <a class="el" href="classshark_1_1_binary_tree.html#a1876569a27c34141bbc4e3fbfe2367ef">isLeaf()</a> </p>

<p class="definition">Definition at line <a class="el" href="_binary_tree_8h_source.html#l00183">183</a> of file <a class="el" href="_binary_tree_8h_source.html">BinaryTree.h</a>.</p>

<p class="reference">References <a class="el" href="classshark_1_1_binary_tree.html#a14c17e4fc65d1351cc23eceae05ce0d0">shark::BinaryTree&lt; InputT &gt;::mp_left</a>.</p>

<p class="reference">Referenced by <a class="el" href="classshark_1_1_hierarchical_clustering.html#af55379385229c1619311fc42d6033a0c">shark::HierarchicalClustering&lt; InputT &gt;::hardMembership()</a>, and <a class="el" href="classshark_1_1_iterative_n_n_query.html#a02c6b80d059c5bd4964ed64a7420ede0">shark::IterativeNNQuery&lt; DataContainer &gt;::IterativeNNQuery()</a>.</p>

</div>
</div>
<a id="ac499a09353aff38530837d22a16ad24a" name="ac499a09353aff38530837d22a16ad24a"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ac499a09353aff38530837d22a16ad24a">&#9670;&#160;</a></span>index()</h2>

<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;class InputT &gt; </div>
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">std::size_t <a class="el" href="classshark_1_1_binary_tree.html">shark::BinaryTree</a>&lt; InputT &gt;::index </td>
          <td>(</td>
          <td class="paramtype">std::size_t&#160;</td>
          <td class="paramname"><em>point</em></td><td>)</td>
          <td> const</td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p class="definition">Definition at line <a class="el" href="_binary_tree_8h_source.html#l00213">213</a> of file <a class="el" href="_binary_tree_8h_source.html">BinaryTree.h</a>.</p>

<p class="reference">References <a class="el" href="classshark_1_1_binary_tree.html#afdce442d41868d9a84dcfc954c78ce93">shark::BinaryTree&lt; InputT &gt;::mp_indexList</a>.</p>

</div>
</div>
<a id="a1876569a27c34141bbc4e3fbfe2367ef" name="a1876569a27c34141bbc4e3fbfe2367ef"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a1876569a27c34141bbc4e3fbfe2367ef">&#9670;&#160;</a></span>isLeaf()</h2>

<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;class InputT &gt; </div>
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">bool <a class="el" href="classshark_1_1_binary_tree.html">shark::BinaryTree</a>&lt; InputT &gt;::isLeaf </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td> const</td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">
<p>Is this a leaf node? Opposite of <a class="el" href="classshark_1_1_binary_tree.html#a8d5379344624257a1c2950d4e64ab8c0">hasChildren()</a> </p>

<p class="definition">Definition at line <a class="el" href="_binary_tree_8h_source.html#l00188">188</a> of file <a class="el" href="_binary_tree_8h_source.html">BinaryTree.h</a>.</p>

<p class="reference">References <a class="el" href="classshark_1_1_binary_tree.html#a14c17e4fc65d1351cc23eceae05ce0d0">shark::BinaryTree&lt; InputT &gt;::mp_left</a>.</p>

</div>
</div>
<a id="a456c9994792021b1bb2557cad4ab7a3e" name="a456c9994792021b1bb2557cad4ab7a3e"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a456c9994792021b1bb2557cad4ab7a3e">&#9670;&#160;</a></span>isLeft()</h2>

<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;class InputT &gt; </div>
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">bool <a class="el" href="classshark_1_1_binary_tree.html">shark::BinaryTree</a>&lt; InputT &gt;::isLeft </td>
          <td>(</td>
          <td class="paramtype">value_type const &amp;&#160;</td>
          <td class="paramname"><em>point</em></td><td>)</td>
          <td> const</td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">
<p>return true if the reference point belongs to the "left" sub-node, or to the "negative" sub-cell. </p>

<p class="definition">Definition at line <a class="el" href="_binary_tree_8h_source.html#l00244">244</a> of file <a class="el" href="_binary_tree_8h_source.html">BinaryTree.h</a>.</p>

<p class="reference">References <a class="el" href="classshark_1_1_binary_tree.html#ad3bf9775a2e3122973a1b4036e8854fd">shark::BinaryTree&lt; InputT &gt;::funct()</a>, and <a class="el" href="classshark_1_1_binary_tree.html#a1d2b86563df35585acbbb0364d3a7450">shark::BinaryTree&lt; InputT &gt;::m_threshold</a>.</p>

<p class="reference">Referenced by <a class="el" href="classshark_1_1_hierarchical_clustering.html#af55379385229c1619311fc42d6033a0c">shark::HierarchicalClustering&lt; InputT &gt;::hardMembership()</a>, and <a class="el" href="classshark_1_1_iterative_n_n_query.html#a02c6b80d059c5bd4964ed64a7420ede0">shark::IterativeNNQuery&lt; DataContainer &gt;::IterativeNNQuery()</a>.</p>

</div>
</div>
<a id="aaf824c0062811dfa4311a66292bb38be" name="aaf824c0062811dfa4311a66292bb38be"></a>
<h2 class="memtitle"><span class="permalink"><a href="#aaf824c0062811dfa4311a66292bb38be">&#9670;&#160;</a></span>isRight()</h2>

<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;class InputT &gt; </div>
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">bool <a class="el" href="classshark_1_1_binary_tree.html">shark::BinaryTree</a>&lt; InputT &gt;::isRight </td>
          <td>(</td>
          <td class="paramtype">value_type const &amp;&#160;</td>
          <td class="paramname"><em>point</em></td><td>)</td>
          <td> const</td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">
<p>return true if the reference point belongs to the "right" sub-node, or to the "positive" sub-cell. </p>

<p class="definition">Definition at line <a class="el" href="_binary_tree_8h_source.html#l00249">249</a> of file <a class="el" href="_binary_tree_8h_source.html">BinaryTree.h</a>.</p>

<p class="reference">References <a class="el" href="classshark_1_1_binary_tree.html#ad3bf9775a2e3122973a1b4036e8854fd">shark::BinaryTree&lt; InputT &gt;::funct()</a>, and <a class="el" href="classshark_1_1_binary_tree.html#a1d2b86563df35585acbbb0364d3a7450">shark::BinaryTree&lt; InputT &gt;::m_threshold</a>.</p>

</div>
</div>
<a id="a882ac1aea537378fead318573c9b301c" name="a882ac1aea537378fead318573c9b301c"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a882ac1aea537378fead318573c9b301c">&#9670;&#160;</a></span>kernel()</h2>

<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;class InputT &gt; </div>
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">virtual <a class="el" href="classshark_1_1_abstract_kernel_function.html">AbstractKernelFunction</a>&lt; value_type &gt; const  * <a class="el" href="classshark_1_1_binary_tree.html">shark::BinaryTree</a>&lt; InputT &gt;::kernel </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td> const</td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">virtual</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>If the tree uses a kernel metric, returns a pointer to the kernel object, else NULL. </p>

<p class="definition">Definition at line <a class="el" href="_binary_tree_8h_source.html#l00253">253</a> of file <a class="el" href="_binary_tree_8h_source.html">BinaryTree.h</a>.</p>

</div>
</div>
<a id="ae20385cf5cf85d7168db9b3fcf411c47" name="ae20385cf5cf85d7168db9b3fcf411c47"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ae20385cf5cf85d7168db9b3fcf411c47">&#9670;&#160;</a></span>left() <span class="overload">[1/2]</span></h2>

<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;class InputT &gt; </div>
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="classshark_1_1_binary_tree.html">BinaryTree</a> * <a class="el" href="classshark_1_1_binary_tree.html">shark::BinaryTree</a>&lt; InputT &gt;::left </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>"left" sub-node of the binary tree </p>

<p class="definition">Definition at line <a class="el" href="_binary_tree_8h_source.html#l00192">192</a> of file <a class="el" href="_binary_tree_8h_source.html">BinaryTree.h</a>.</p>

<p class="reference">References <a class="el" href="classshark_1_1_binary_tree.html#a14c17e4fc65d1351cc23eceae05ce0d0">shark::BinaryTree&lt; InputT &gt;::mp_left</a>.</p>

<p class="reference">Referenced by <a class="el" href="classshark_1_1_k_d_tree.html#a7ca41c2db8a6d814deef326dd0bbfa44">shark::KDTree&lt; InputT &gt;::buildTree()</a>, <a class="el" href="classshark_1_1_l_c_tree.html#a24332e2c05b6a959b8f98577f83ab88a">shark::LCTree&lt; VectorType, CuttingAccuracy &gt;::buildTree()</a>, <a class="el" href="classshark_1_1_hierarchical_clustering.html#af55379385229c1619311fc42d6033a0c">shark::HierarchicalClustering&lt; InputT &gt;::hardMembership()</a>, and <a class="el" href="classshark_1_1_iterative_n_n_query.html#a02c6b80d059c5bd4964ed64a7420ede0">shark::IterativeNNQuery&lt; DataContainer &gt;::IterativeNNQuery()</a>.</p>

</div>
</div>
<a id="a3b130767c5ff7c5233b0de89fb263221" name="a3b130767c5ff7c5233b0de89fb263221"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a3b130767c5ff7c5233b0de89fb263221">&#9670;&#160;</a></span>left() <span class="overload">[2/2]</span></h2>

<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;class InputT &gt; </div>
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">const <a class="el" href="classshark_1_1_binary_tree.html">BinaryTree</a> * <a class="el" href="classshark_1_1_binary_tree.html">shark::BinaryTree</a>&lt; InputT &gt;::left </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td> const</td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>"left" sub-node of the binary tree </p>

<p class="definition">Definition at line <a class="el" href="_binary_tree_8h_source.html#l00195">195</a> of file <a class="el" href="_binary_tree_8h_source.html">BinaryTree.h</a>.</p>

<p class="reference">References <a class="el" href="classshark_1_1_binary_tree.html#a14c17e4fc65d1351cc23eceae05ce0d0">shark::BinaryTree&lt; InputT &gt;::mp_left</a>.</p>

</div>
</div>
<a id="a53cb65296bf84a1fbe0715e2ba0878bb" name="a53cb65296bf84a1fbe0715e2ba0878bb"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a53cb65296bf84a1fbe0715e2ba0878bb">&#9670;&#160;</a></span>nodes()</h2>

<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;class InputT &gt; </div>
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">std::size_t <a class="el" href="classshark_1_1_binary_tree.html">shark::BinaryTree</a>&lt; InputT &gt;::nodes </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td> const</td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>number of sub-nodes in this tree (including the node itself) </p>

<p class="definition">Definition at line <a class="el" href="_binary_tree_8h_source.html#l00210">210</a> of file <a class="el" href="_binary_tree_8h_source.html">BinaryTree.h</a>.</p>

<p class="reference">References <a class="el" href="classshark_1_1_binary_tree.html#ad07d8f306001f8e1bc9a321a3d11444e">shark::BinaryTree&lt; InputT &gt;::m_nodes</a>.</p>

<p class="reference">Referenced by <a class="el" href="classshark_1_1_k_d_tree.html#a7ca41c2db8a6d814deef326dd0bbfa44">shark::KDTree&lt; InputT &gt;::buildTree()</a>, <a class="el" href="classshark_1_1_k_h_c_tree.html#a96ac23e4df78cfa576aae64ba7600b97">shark::KHCTree&lt; Container, CuttingAccuracy &gt;::buildTree()</a>, <a class="el" href="classshark_1_1_l_c_tree.html#a24332e2c05b6a959b8f98577f83ab88a">shark::LCTree&lt; VectorType, CuttingAccuracy &gt;::buildTree()</a>, <a class="el" href="classshark_1_1_hierarchical_clustering.html#af55379385229c1619311fc42d6033a0c">shark::HierarchicalClustering&lt; InputT &gt;::hardMembership()</a>, <a class="el" href="_hierarchical_clustering_8cpp.html#a3c04138a5bfe5d72780bb7e82a18e627">main()</a>, and <a class="el" href="classshark_1_1_hierarchical_clustering.html#a39b55be35d11299ad57826de89551e4c">shark::HierarchicalClustering&lt; InputT &gt;::numberOfClusters()</a>.</p>

</div>
</div>
<a id="a86cc7ef0387f9ae7cb4aff75cf4c6bee" name="a86cc7ef0387f9ae7cb4aff75cf4c6bee"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a86cc7ef0387f9ae7cb4aff75cf4c6bee">&#9670;&#160;</a></span>parent() <span class="overload">[1/2]</span></h2>

<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;class InputT &gt; </div>
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="classshark_1_1_binary_tree.html">BinaryTree</a> * <a class="el" href="classshark_1_1_binary_tree.html">shark::BinaryTree</a>&lt; InputT &gt;::parent </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>parent node </p>

<p class="definition">Definition at line <a class="el" href="_binary_tree_8h_source.html#l00175">175</a> of file <a class="el" href="_binary_tree_8h_source.html">BinaryTree.h</a>.</p>

<p class="reference">References <a class="el" href="classshark_1_1_binary_tree.html#a100ef54d8a4904afff8c188bf4e735f9">shark::BinaryTree&lt; InputT &gt;::mep_parent</a>.</p>

<p class="reference">Referenced by <a class="el" href="classshark_1_1_k_d_tree.html#aefe4d7d7a1833f518b5b3a3ad1adb520">shark::KDTree&lt; InputT &gt;::lower()</a>, and <a class="el" href="classshark_1_1_k_d_tree.html#a80d8c03cbb03aa01f1b8a310bb7cf55d">shark::KDTree&lt; InputT &gt;::upper()</a>.</p>

</div>
</div>
<a id="acf31280508b15cf67be7b7b4d30e41f5" name="acf31280508b15cf67be7b7b4d30e41f5"></a>
<h2 class="memtitle"><span class="permalink"><a href="#acf31280508b15cf67be7b7b4d30e41f5">&#9670;&#160;</a></span>parent() <span class="overload">[2/2]</span></h2>

<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;class InputT &gt; </div>
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">const <a class="el" href="classshark_1_1_binary_tree.html">BinaryTree</a> * <a class="el" href="classshark_1_1_binary_tree.html">shark::BinaryTree</a>&lt; InputT &gt;::parent </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td> const</td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>parent node </p>

<p class="definition">Definition at line <a class="el" href="_binary_tree_8h_source.html#l00178">178</a> of file <a class="el" href="_binary_tree_8h_source.html">BinaryTree.h</a>.</p>

<p class="reference">References <a class="el" href="classshark_1_1_binary_tree.html#a100ef54d8a4904afff8c188bf4e735f9">shark::BinaryTree&lt; InputT &gt;::mep_parent</a>.</p>

</div>
</div>
<a id="ae5167564abb964d90da01897693a5768" name="ae5167564abb964d90da01897693a5768"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ae5167564abb964d90da01897693a5768">&#9670;&#160;</a></span>right() <span class="overload">[1/2]</span></h2>

<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;class InputT &gt; </div>
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="classshark_1_1_binary_tree.html">BinaryTree</a> * <a class="el" href="classshark_1_1_binary_tree.html">shark::BinaryTree</a>&lt; InputT &gt;::right </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>"right" sub-node of the binary tree </p>

<p class="definition">Definition at line <a class="el" href="_binary_tree_8h_source.html#l00199">199</a> of file <a class="el" href="_binary_tree_8h_source.html">BinaryTree.h</a>.</p>

<p class="reference">References <a class="el" href="classshark_1_1_binary_tree.html#acc95bb731d3bfac4a896820f8de04ad8">shark::BinaryTree&lt; InputT &gt;::mp_right</a>.</p>

<p class="reference">Referenced by <a class="el" href="classshark_1_1_k_d_tree.html#a7ca41c2db8a6d814deef326dd0bbfa44">shark::KDTree&lt; InputT &gt;::buildTree()</a>, <a class="el" href="classshark_1_1_l_c_tree.html#a24332e2c05b6a959b8f98577f83ab88a">shark::LCTree&lt; VectorType, CuttingAccuracy &gt;::buildTree()</a>, <a class="el" href="classshark_1_1_hierarchical_clustering.html#af55379385229c1619311fc42d6033a0c">shark::HierarchicalClustering&lt; InputT &gt;::hardMembership()</a>, and <a class="el" href="classshark_1_1_iterative_n_n_query.html#a02c6b80d059c5bd4964ed64a7420ede0">shark::IterativeNNQuery&lt; DataContainer &gt;::IterativeNNQuery()</a>.</p>

</div>
</div>
<a id="a57a5c5fd47bda6d5fc35774abfb9731f" name="a57a5c5fd47bda6d5fc35774abfb9731f"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a57a5c5fd47bda6d5fc35774abfb9731f">&#9670;&#160;</a></span>right() <span class="overload">[2/2]</span></h2>

<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;class InputT &gt; </div>
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">const <a class="el" href="classshark_1_1_binary_tree.html">BinaryTree</a> * <a class="el" href="classshark_1_1_binary_tree.html">shark::BinaryTree</a>&lt; InputT &gt;::right </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td> const</td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>"right" sub-node of the binary tree </p>

<p class="definition">Definition at line <a class="el" href="_binary_tree_8h_source.html#l00202">202</a> of file <a class="el" href="_binary_tree_8h_source.html">BinaryTree.h</a>.</p>

<p class="reference">References <a class="el" href="classshark_1_1_binary_tree.html#acc95bb731d3bfac4a896820f8de04ad8">shark::BinaryTree&lt; InputT &gt;::mp_right</a>.</p>

</div>
</div>
<a id="aa726e7311191b6617cf2079544e23662" name="aa726e7311191b6617cf2079544e23662"></a>
<h2 class="memtitle"><span class="permalink"><a href="#aa726e7311191b6617cf2079544e23662">&#9670;&#160;</a></span>size()</h2>

<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;class InputT &gt; </div>
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">std::size_t <a class="el" href="classshark_1_1_binary_tree.html">shark::BinaryTree</a>&lt; InputT &gt;::size </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td> const</td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>number of points inside the space represented by this node </p>

<p class="definition">Definition at line <a class="el" href="_binary_tree_8h_source.html#l00206">206</a> of file <a class="el" href="_binary_tree_8h_source.html">BinaryTree.h</a>.</p>

<p class="reference">References <a class="el" href="classshark_1_1_binary_tree.html#a825e00e68228cb1654b5ac0a25f4972a">shark::BinaryTree&lt; InputT &gt;::m_size</a>.</p>

</div>
</div>
<a id="a153a6ecae3dd8bf1407209962febca55" name="a153a6ecae3dd8bf1407209962febca55"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a153a6ecae3dd8bf1407209962febca55">&#9670;&#160;</a></span>splitList()</h2>

<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;class InputT &gt; </div>
<div class="memtemplate">
template&lt;class Range1 , class Range2 &gt; </div>
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">Range2::iterator <a class="el" href="classshark_1_1_binary_tree.html">shark::BinaryTree</a>&lt; InputT &gt;::splitList </td>
          <td>(</td>
          <td class="paramtype">Range1 &amp;&#160;</td>
          <td class="paramname"><em>values</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">Range2 &amp;&#160;</td>
          <td class="paramname"><em>points</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">protected</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Split the data in the point list and calculate the treshold accordingly. </p>
<p>The method computes the optimal threshold given the distance of every element of the set and partitions the point range accordingly </p><dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">values</td><td>the value of every point returned by funct(point) </td></tr>
    <tr><td class="paramname">points</td><td>the points themselves </td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>returns the position were the point list was split </dd></dl>

<p class="definition">Definition at line <a class="el" href="_binary_tree_8h_source.html#l00315">315</a> of file <a class="el" href="_binary_tree_8h_source.html">BinaryTree.h</a>.</p>

<p class="reference">References <a class="el" href="classshark_1_1_binary_tree.html#a1d2b86563df35585acbbb0364d3a7450">shark::BinaryTree&lt; InputT &gt;::m_threshold</a>, and <a class="el" href="namespaceshark.html#a49f0e3d033fc1a8bdd25083ed580743f">shark::partitionEqually()</a>.</p>

<p class="reference">Referenced by <a class="el" href="classshark_1_1_k_d_tree.html#a7ca41c2db8a6d814deef326dd0bbfa44">shark::KDTree&lt; InputT &gt;::buildTree()</a>, and <a class="el" href="classshark_1_1_l_c_tree.html#a24332e2c05b6a959b8f98577f83ab88a">shark::LCTree&lt; VectorType, CuttingAccuracy &gt;::buildTree()</a>.</p>

</div>
</div>
<a id="aa78235225476effa7b22d285f3d9e197" name="aa78235225476effa7b22d285f3d9e197"></a>
<h2 class="memtitle"><span class="permalink"><a href="#aa78235225476effa7b22d285f3d9e197">&#9670;&#160;</a></span>squaredDistanceLowerBound()</h2>

<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;class InputT &gt; </div>
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">virtual double <a class="el" href="classshark_1_1_binary_tree.html">shark::BinaryTree</a>&lt; InputT &gt;::squaredDistanceLowerBound </td>
          <td>(</td>
          <td class="paramtype">value_type const &amp;&#160;</td>
          <td class="paramname"><em>point</em></td><td>)</td>
          <td> const</td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">pure virtual</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Compute lower bound on the squared distance to the space cell. </p>
<dl class="section user"><dt></dt><dd>For efficient use of the triangle inequality the space cell represented by each node needs to provide (a lower bound on) the distance of a query point to the space cell represented by this node. Search is fast if this bound is tight. </dd></dl>

<p>Implemented in <a class="el" href="classshark_1_1_k_d_tree.html#a68e44a697dc289c700c65658af6b3893">shark::KDTree&lt; InputT &gt;</a>.</p>

</div>
</div>
<a id="ad7e43f9fa135d67d1817b2a7aa20b434" name="ad7e43f9fa135d67d1817b2a7aa20b434"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ad7e43f9fa135d67d1817b2a7aa20b434">&#9670;&#160;</a></span>threshold()</h2>

<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;class InputT &gt; </div>
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">double <a class="el" href="classshark_1_1_binary_tree.html">shark::BinaryTree</a>&lt; InputT &gt;::threshold </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td> const</td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Separation threshold. </p>

<p class="definition">Definition at line <a class="el" href="_binary_tree_8h_source.html#l00238">238</a> of file <a class="el" href="_binary_tree_8h_source.html">BinaryTree.h</a>.</p>

<p class="reference">References <a class="el" href="classshark_1_1_binary_tree.html#a1d2b86563df35585acbbb0364d3a7450">shark::BinaryTree&lt; InputT &gt;::m_threshold</a>.</p>

<p class="reference">Referenced by <a class="el" href="classshark_1_1_k_d_tree.html#aefe4d7d7a1833f518b5b3a3ad1adb520">shark::KDTree&lt; InputT &gt;::lower()</a>, and <a class="el" href="classshark_1_1_k_d_tree.html#a80d8c03cbb03aa01f1b8a310bb7cf55d">shark::KDTree&lt; InputT &gt;::upper()</a>.</p>

</div>
</div>
<h2 class="groupheader">Member Data Documentation</h2>
<a id="ad07d8f306001f8e1bc9a321a3d11444e" name="ad07d8f306001f8e1bc9a321a3d11444e"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ad07d8f306001f8e1bc9a321a3d11444e">&#9670;&#160;</a></span>m_nodes</h2>

<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;class InputT &gt; </div>
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">std::size_t <a class="el" href="classshark_1_1_binary_tree.html">shark::BinaryTree</a>&lt; InputT &gt;::m_nodes</td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">protected</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>number of nodes in the sub-tree represented by this node </p>

<p class="definition">Definition at line <a class="el" href="_binary_tree_8h_source.html#l00361">361</a> of file <a class="el" href="_binary_tree_8h_source.html">BinaryTree.h</a>.</p>

<p class="reference">Referenced by <a class="el" href="classshark_1_1_binary_tree.html#a53cb65296bf84a1fbe0715e2ba0878bb">shark::BinaryTree&lt; InputT &gt;::nodes()</a>.</p>

</div>
</div>
<a id="a825e00e68228cb1654b5ac0a25f4972a" name="a825e00e68228cb1654b5ac0a25f4972a"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a825e00e68228cb1654b5ac0a25f4972a">&#9670;&#160;</a></span>m_size</h2>

<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;class InputT &gt; </div>
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">std::size_t <a class="el" href="classshark_1_1_binary_tree.html">shark::BinaryTree</a>&lt; InputT &gt;::m_size</td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">protected</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>number of points in this node </p>

<p class="definition">Definition at line <a class="el" href="_binary_tree_8h_source.html#l00358">358</a> of file <a class="el" href="_binary_tree_8h_source.html">BinaryTree.h</a>.</p>

<p class="reference">Referenced by <a class="el" href="classshark_1_1_binary_tree.html#a50b781f4203ea4d3a9e1dc60a52bec4e">shark::BinaryTree&lt; InputT &gt;::BinaryTree()</a>, and <a class="el" href="classshark_1_1_binary_tree.html#aa726e7311191b6617cf2079544e23662">shark::BinaryTree&lt; InputT &gt;::size()</a>.</p>

</div>
</div>
<a id="a1d2b86563df35585acbbb0364d3a7450" name="a1d2b86563df35585acbbb0364d3a7450"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a1d2b86563df35585acbbb0364d3a7450">&#9670;&#160;</a></span>m_threshold</h2>

<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;class InputT &gt; </div>
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">double <a class="el" href="classshark_1_1_binary_tree.html">shark::BinaryTree</a>&lt; InputT &gt;::m_threshold</td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">protected</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>threshold for the separating function </p>

<p class="definition">Definition at line <a class="el" href="_binary_tree_8h_source.html#l00364">364</a> of file <a class="el" href="_binary_tree_8h_source.html">BinaryTree.h</a>.</p>

<p class="reference">Referenced by <a class="el" href="classshark_1_1_binary_tree.html#aa0d859e272e40b522cb3eb328b0e1f41">shark::BinaryTree&lt; InputT &gt;::distanceFromPlane()</a>, <a class="el" href="classshark_1_1_binary_tree.html#a456c9994792021b1bb2557cad4ab7a3e">shark::BinaryTree&lt; InputT &gt;::isLeft()</a>, <a class="el" href="classshark_1_1_binary_tree.html#aaf824c0062811dfa4311a66292bb38be">shark::BinaryTree&lt; InputT &gt;::isRight()</a>, <a class="el" href="classshark_1_1_binary_tree.html#a153a6ecae3dd8bf1407209962febca55">shark::BinaryTree&lt; InputT &gt;::splitList()</a>, and <a class="el" href="classshark_1_1_binary_tree.html#ad7e43f9fa135d67d1817b2a7aa20b434">shark::BinaryTree&lt; InputT &gt;::threshold()</a>.</p>

</div>
</div>
<a id="a100ef54d8a4904afff8c188bf4e735f9" name="a100ef54d8a4904afff8c188bf4e735f9"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a100ef54d8a4904afff8c188bf4e735f9">&#9670;&#160;</a></span>mep_parent</h2>

<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;class InputT &gt; </div>
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="classshark_1_1_binary_tree.html">BinaryTree</a>* <a class="el" href="classshark_1_1_binary_tree.html">shark::BinaryTree</a>&lt; InputT &gt;::mep_parent</td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">protected</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>parent node </p>

<p class="definition">Definition at line <a class="el" href="_binary_tree_8h_source.html#l00346">346</a> of file <a class="el" href="_binary_tree_8h_source.html">BinaryTree.h</a>.</p>

<p class="reference">Referenced by <a class="el" href="classshark_1_1_binary_tree.html#a86cc7ef0387f9ae7cb4aff75cf4c6bee">shark::BinaryTree&lt; InputT &gt;::parent()</a>, <a class="el" href="classshark_1_1_binary_tree.html#acf31280508b15cf67be7b7b4d30e41f5">shark::BinaryTree&lt; InputT &gt;::parent()</a>, and <a class="el" href="classshark_1_1_binary_tree.html#a9928e5dcb0026028ef3f4cbf56fe8721">shark::BinaryTree&lt; InputT &gt;::~BinaryTree()</a>.</p>

</div>
</div>
<a id="afdce442d41868d9a84dcfc954c78ce93" name="afdce442d41868d9a84dcfc954c78ce93"></a>
<h2 class="memtitle"><span class="permalink"><a href="#afdce442d41868d9a84dcfc954c78ce93">&#9670;&#160;</a></span>mp_indexList</h2>

<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;class InputT &gt; </div>
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">std::size_t* <a class="el" href="classshark_1_1_binary_tree.html">shark::BinaryTree</a>&lt; InputT &gt;::mp_indexList</td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">protected</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>list of indices to points in the dataset </p>

<p class="definition">Definition at line <a class="el" href="_binary_tree_8h_source.html#l00355">355</a> of file <a class="el" href="_binary_tree_8h_source.html">BinaryTree.h</a>.</p>

<p class="reference">Referenced by <a class="el" href="classshark_1_1_binary_tree.html#a50b781f4203ea4d3a9e1dc60a52bec4e">shark::BinaryTree&lt; InputT &gt;::BinaryTree()</a>, <a class="el" href="classshark_1_1_binary_tree.html#ac499a09353aff38530837d22a16ad24a">shark::BinaryTree&lt; InputT &gt;::index()</a>, and <a class="el" href="classshark_1_1_binary_tree.html#a9928e5dcb0026028ef3f4cbf56fe8721">shark::BinaryTree&lt; InputT &gt;::~BinaryTree()</a>.</p>

</div>
</div>
<a id="a14c17e4fc65d1351cc23eceae05ce0d0" name="a14c17e4fc65d1351cc23eceae05ce0d0"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a14c17e4fc65d1351cc23eceae05ce0d0">&#9670;&#160;</a></span>mp_left</h2>

<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;class InputT &gt; </div>
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="classshark_1_1_binary_tree.html">BinaryTree</a>* <a class="el" href="classshark_1_1_binary_tree.html">shark::BinaryTree</a>&lt; InputT &gt;::mp_left</td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">protected</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>"left" child node </p>

<p class="definition">Definition at line <a class="el" href="_binary_tree_8h_source.html#l00349">349</a> of file <a class="el" href="_binary_tree_8h_source.html">BinaryTree.h</a>.</p>

<p class="reference">Referenced by <a class="el" href="classshark_1_1_binary_tree.html#a8d5379344624257a1c2950d4e64ab8c0">shark::BinaryTree&lt; InputT &gt;::hasChildren()</a>, <a class="el" href="classshark_1_1_binary_tree.html#a1876569a27c34141bbc4e3fbfe2367ef">shark::BinaryTree&lt; InputT &gt;::isLeaf()</a>, <a class="el" href="classshark_1_1_binary_tree.html#ae20385cf5cf85d7168db9b3fcf411c47">shark::BinaryTree&lt; InputT &gt;::left()</a>, <a class="el" href="classshark_1_1_binary_tree.html#a3b130767c5ff7c5233b0de89fb263221">shark::BinaryTree&lt; InputT &gt;::left()</a>, <a class="el" href="classshark_1_1_k_d_tree.html#a80d8c03cbb03aa01f1b8a310bb7cf55d">shark::KDTree&lt; InputT &gt;::upper()</a>, and <a class="el" href="classshark_1_1_binary_tree.html#a9928e5dcb0026028ef3f4cbf56fe8721">shark::BinaryTree&lt; InputT &gt;::~BinaryTree()</a>.</p>

</div>
</div>
<a id="acc95bb731d3bfac4a896820f8de04ad8" name="acc95bb731d3bfac4a896820f8de04ad8"></a>
<h2 class="memtitle"><span class="permalink"><a href="#acc95bb731d3bfac4a896820f8de04ad8">&#9670;&#160;</a></span>mp_right</h2>

<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;class InputT &gt; </div>
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="classshark_1_1_binary_tree.html">BinaryTree</a>* <a class="el" href="classshark_1_1_binary_tree.html">shark::BinaryTree</a>&lt; InputT &gt;::mp_right</td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">protected</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>"right" child node </p>

<p class="definition">Definition at line <a class="el" href="_binary_tree_8h_source.html#l00352">352</a> of file <a class="el" href="_binary_tree_8h_source.html">BinaryTree.h</a>.</p>

<p class="reference">Referenced by <a class="el" href="classshark_1_1_k_d_tree.html#aefe4d7d7a1833f518b5b3a3ad1adb520">shark::KDTree&lt; InputT &gt;::lower()</a>, <a class="el" href="classshark_1_1_binary_tree.html#ae5167564abb964d90da01897693a5768">shark::BinaryTree&lt; InputT &gt;::right()</a>, <a class="el" href="classshark_1_1_binary_tree.html#a57a5c5fd47bda6d5fc35774abfb9731f">shark::BinaryTree&lt; InputT &gt;::right()</a>, and <a class="el" href="classshark_1_1_binary_tree.html#a9928e5dcb0026028ef3f4cbf56fe8721">shark::BinaryTree&lt; InputT &gt;::~BinaryTree()</a>.</p>

</div>
</div>
<hr/>The documentation for this class was generated from the following file:<ul>
<li>include/shark/Models/Trees/<a class="el" href="_binary_tree_8h_source.html">BinaryTree.h</a></li>
</ul>
</div><!-- contents -->
</div>
</body>
</html>
